### Cette unit est encore incomplte, il manque notamment un proto de type menuButton permettant  l'utilisateur de choisir un charset.

Pour utiliser EERecode, il faut inclure le fichier EERecodeConstants.f au dbut de chaque projet qui l'utilise.

La plupart des fonctions ont un paramtre "charset" ou "encoding". Ce paramtre doit prendre une des valeurs suivantes :
	kMacOSCharset
	kMSDOSCharset
	kNewtonCharset
	kUnixCharset
	kWindowsCharset
NB : Ces constantes sont dfinies dans EERecodeConstants.f

Toutes les fonctions qui retournent des strings remplacent systmatiquement les caractres nuls par des "?".

Ces fonctions s'utilisent de la manire suivante :
	<result> := call <nom_de_la_fonction> with (<argument_1>, ..., <argument_n>);


* EEBinaryCharsCount: func native(binary, encoding)

Rend le nombre de caractres de binary.
NB: Ce n'est pas forcment la mme chose que Length(binary), notamment quand encoding = kNewtonCharset.


* EEChr: func native(codedOrd, encoding)

Rend le caractre unicode correspondant  l'entier codedOrd.


* EEAppendArrayToBinary: func native(binary, array, encoding)

array est un array d'integers (plus prcisment de bytes).

Ajoute chaque lment de l'array  la fin du binary.
Cette fonction modifie le binary pass en paramtre (i.e. elle ne le recopie pas).
Elle retourne le binary modifi.
NB : Cette fonction n'effectue aucune conversion : les integers de l'array sont stuffs tels quels.


* EEConvertArrayToString: func native(array, encoding)

array est un array d'integers (plus prcisment de bytes) corres

Rend une string contenant les caractres unicodes correspondant  chacun des entiers de array.

### Ne modifie pas les sparateurs de ligne.


* EEConvertBinaryToString: func native(binary, encoding)

Rend une string contenant les caractres unicodes correspondant  chacun des bytes de binary.

### Ne modifie pas les sparateurs de ligne.


* EEConvertFileToString: func native(fileData, store, charset)

Convertit un fichier en string et rend la string.


* EEConvertStringToArray: func native(string, encoding)

C'est le contraire de EEConvertArrayToString.

### Ne modifie pas les sparateurs de ligne.


* EEConvertStringToBinary: func native(string, encoding)

C'est le contraire de EEConvertBinaryToString.

### Ne modifie pas les sparateurs de ligne.


* EEConvertStringToFile: func native(string, store, charset)

C'est le contraire de EEConvertFileToString.


* EEExtractCString: func native(binary, offset, encoding)

Mme comportement que la fonction ExtractCString de Newton, sauf que les bytes de binary sont convertis d'aprs encoding.

### Ne modifie pas les sparateurs de ligne.


* EEExtractString: func native(binary, offset, length, encoding)

Mme comportement que EEExtractCString, sauf qu'on lui fournit dans length le nombre de bytes  extraire.

### Ne modifie pas les sparateurs de ligne.


* EEGetLineSeparator: func native(charset)

Rend la string utilise comme sparateur de ligne pour le charset indiqu en paramtre.


* EEOrd: func native(char, encoding)

Rend l'entier correspondant au caractre unicode char.


* EEStuffCString: func native(binary, offset, string, encoding)

Mme comportement que la fonction StuffCString de Newton, sauf que les caractres de la string sont convertis en bytes d'aprs encoding.

### Ne modifie pas les sparateurs de ligne.


* eeRecoder: proto

Proto d'extraction de lignes d'un fichiers, ou au contraire d'ajout de lignes dans un fichier

exemple 1 :
	// Gnre un fichier contenant 100000 octets sous forme de
	// lignes de 32 caractres plus le saut de ligne.
	local encoder := eeRecoder:New({
				charset: charset,
				length: 100000,
				store: GetDefaultStore(),
			});
	while encoder:StuffNextLine("12345678901234567890123456789012") do
		nil;
	local data := encoder:Result();

exemple 2 :
	// Gnre un fichier contenant 1000 lignes de 32 caractres
	// plus le saut de ligne.
	local encoder := eeRecoder:New({
				charset: charset,
				store: GetDefaultStore(),
			});
	for i := 1 to 1000 do
		encoder:AddLine("12345678901234567890123456789012");
	local data := encoder:Result();
